//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
// Setup for a Window's DLL if needed.
#if defined( _WINDOWS ) && defined( BUILDING_SCRIPT_DLL )
#	ifdef BUILDING_SCRIPT
#		define SCRIPT_EXPORT	__declspec( dllexport )
#	else
#		define SCRIPT_EXPORT	__declspec( dllimport )
#	endif
#else
#	define SCRIPT_EXPORT
#endif


//////////////////////////////////////////////////////////////////////////
// Generally required includes.
#include "Core/Core.hpp"
#include <lua.hpp>
#include <LuaBridge/LuaBridge.h>

namespace Core
{
	class Script
	{
	public:
		Script();
		~Script();

		operator lua_State* ()											{return mpState;}

		bool				Load( const std::string& script );
		bool				Run( const std::string& script );
		bool				Call( const std::string& function );

	private:
		lua_State*			mpState;
	};
}
